1. Technical Field
The present invention relates in general to a method and system for delivering a common application to both a constrained and non-constrained device. More particularly, the present invention relates to an improved method and system for processing Internet applications (i.e., Java Applets).
2. Description of the Related Art
Computer systems in general and International Business Machines (IBM) compatible personal computer systems in particular have attained widespread use for providing computer power to many segments of today's modern society. Systems with microprocessors are finding themselves in an array of smaller and more specialized objects that previously were largely untouched by computer technology. These devices are sometimes called “pervasive computing systems” because of their appearance as both traditionally computerized devices, such as desktop computers, tower computers, and portable computers, as well as newly computerized devices such as telephones, appliances, automobiles, and other devices. Pervasive computing devices often include a system processor and associated volatile and non-volatile memory, a display area, input means, and often interfaces, such as a network interface or modem, to other computing devices.
One of the distinguishing characteristics of these systems is the use of a system board to electrically connect these components together. These pervasive computing devices are information handling systems which are designed primarily to give independent computing power to a single user, or a group of users in the case of networked pervasive computing devices. Pervasive computing devices are often inexpensively priced for purchase by individuals or businesses. A pervasive computing device may also include one or more I/O devices (i.e. peripheral devices) which are coupled to the system processor and which perform specialized functions. Examples of I/O devices include modems, sound and video devices or specialized communication devices. Nonvolatile storage devices such as hard disks, CD-ROM drives and magneto-optical drives are also considered to be peripheral devices. Pervasive computing devices are often linked to computing systems and other pervasive computing devices using a network, such as a local area network (LAN), wide area network (WAN), or other type of network such as the Internet. By linking to computers including pervasive computing devices, a pervasive computing device can use resources owned by another computing device. These resources can include files stored on nonvolatile storage devices and resources such as printers.
Servers provide information to client computers, such as pervasive computing devices, that link to the servers through the network. Because a server serves a wide variety of clients, the processing abilities and power of the client computers requesting information is often unknown by the server. One type of information provided by servers is an applet. An applet is a program written in the Java™ programming language that can be included in an HTML page, much in the same way an image is included. When a Java technology-enabled browser is used view a page that contains an applet, the applet's code is transferred to the client's computer system and executed by the browser's Java Virtual Machine (JVM) running in the client computer system. Java applets are more capable and dynamic than many other types of network (Internet) based applications.
A challenge, however, is providing applet functionality to the wide variety of devices that request information from a server. While a typical desktop computer system may be able to execute a JVM in its browser, other more constrained pervasive computing devices cannot run a JVM and are therefore unable to view content that is delivered as part of an applet. For example, a cellular telephone may be a pervasive computing device with a link (i.e., wireless modem connection) to the Internet and a display screen capable of displaying web pages delivered from the Internet. However, because of its small size, smaller computing power, and smaller power source (rechargeable battery), the cellular telephone pervasive computing device may lack the power to run the Java Virtual Machine in is basic browser. In addition, the wireless modem connection may be slower than a broadband Internet connection further inhibiting the cell phone's ability to download Java applets.
Content providers that wish to serve both non-constrained client computers and more constrained pervasive computing devices traditionally provide both an applet and a servlet. A servlet is a Java application that runs on a server in order to produce content (i.e., HTML) to be sent to a client computer. If the client is capable of running the applet, the applet is loaded into the client's computer system and run by the Java Virtual Machine running in the client's computer. If the client is not capable of running the applet, the servlet is executed by the server and the contents are delivered and displayed on the client computer. A challenge with the current art, therefore, is that two programs (i.e., an applet and a servlet) are needed to support constrained and non-constrained clients.
What is needed, therefore, is a method for running the same applet on either the server or the client depending on the constraints existing within the client computer system.